Yaw estimation

ABSTRACT

Methods and systems are described for estimating yaw of an implement relative to a machine. The yaw is estimated using gyro signals. The gyro signals may be provided by gyro sensors such as IMUs that are coupled to the implement and machine.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.16/213,095, filed Dec. 7, 2018, entitled “YAW ESTIMATION,” the entirecontent of which is incorporated herein by reference for all purposes.

FIELD OF INVENTION

Embodiments described herein related generally to yaw estimation and, inspecific embodiments, to yaw estimation of a dozer blade relative to adozer or relative to a c-frame coupled to the dozer.

BACKGROUND

Earthmoving machines, such as dozers (bulldozers), motor graders,loaders, and the like, typically utilize hydraulically controlledimplements, such as blades or buckets, to move or pick up dirt or othermaterials. Sometimes these earthmoving machines include various types ofsensors mounted to a body of the machine and/or to the implement todetermine an absolute or relative position and/or orientation of theimplement. Depending on the type of machine and implement, theorientation may include yaw, pitch, and/or roll. Improved methods andsystems are desired for determining the position and/or orientation ofthese implements.

SUMMARY

Embodiments described herein provide improved methods and systems forestimating yaw of an implement relative to a machine. The yaw isestimated using gyro signals. The gyro signals may be provided by gyrosensors coupled to the machine (e.g., an earthmoving machine such as adozer) and gyro sensors coupled to the implement (e.g., a dozer blade).The gyro signals can be used to estimate a relative orientation betweenthe gyro sensors and thus a relative yaw of the implement.

In accordance with a particular embodiment, for example, a method forestimating yaw of a dozer blade coupled to a dozer by a c-frame, wherethe dozer blade is rotatable to change the yaw of the dozer bladerelative to the c-frame, includes receiving an estimated pitch and rollof the dozer blade, receiving an estimated pitch and roll of thec-frame, and moving the c-frame to simultaneously rotate an inertialmeasurement unit (IMU) coupled to the dozer blade and an IMU coupled tothe c-frame. Measurement axes of the IMU coupled to the dozer blade andmeasurement axes of the IMU coupled to the c-frame may be approximatelyaligned. The method also includes receiving gyro signals of the IMUcoupled to the dozer blade, and receiving gyro signals of the IMUcoupled to the c-frame. At least some of the gyro signals of the IMUcoupled to the dozer blade may include signals obtained while thec-frame is moving and the yaw of the dozer blade is substantiallystatic, and at least some of the gyro signals of the IMU coupled to thec-frame may include signals obtained while the c-frame is moving. Themethod also includes reducing effects of the estimated pitch and roll ofthe dozer blade on the gyro signals of the IMU coupled to the dozerblade to provide corrected dozer blade gyro signals, reducing effects ofthe estimated pitch and roll of the c-frame on the gyro signals of theIMU coupled to the c-frame to provide corrected c-frame gyro signals,and estimating the yaw of the dozer blade relative to the c-frame basedon the corrected dozer blade gyro signals and the corrected c-frame gyrosignals.

In an embodiment, the pitch and roll of the dozer blade is estimatedusing the IMU coupled to the dozer blade, and the pitch and roll of thec-frame is estimated using the IMU coupled to the c-frame.

In another embodiment, at least one of the pitch and roll of the dozerblade or the pitch and roll of the c-frame are estimated without usingsignals from an IMU.

In another embodiment, the yaw of the dozer blade relative to thec-frame is estimated using Euler angles.

In another embodiment, the method also includes rotating the dozer bladeto change the yaw of the dozer blade, receiving gyro signals of the IMUcoupled to the dozer blade while the dozer blade is rotating, andestimating the yaw of the dozer blade relative to the c-frame based onthe gyro signals received while the dozer blade is rotating.

In another embodiment, the gyro signals of the IMU coupled to the dozerblade and the gyro signals of the IMU coupled to the c-frame provideinformation on angular velocity of the dozer blade and angular velocityof the c-frame respectively in Cartesian reference frames.

In another embodiment, the measurement axes of the IMU coupled to thedozer blade and the measurement axes of the IMU coupled to the c-frameeach include an axis associated with pitch and an axis associated withroll, and the gyro signals of the IMU coupled to the dozer blade and thegyro signals of the IMU coupled to the c-frame provide information onangular velocity associated with the pitch and angular velocityassociated with the roll.

In another embodiment, the measurement axes of the IMU coupled to thedozer blade and the measurement axes of the IMU coupled to the c-frameeach include an axis associated with pitch, an axis associated withroll, and an axis associated with yaw, and the yaw of the dozer bladerelative to the c-frame is estimated using gyro signals associated withthe pitch and gyro signals associated with the roll without using gyrosignals associated with the yaw.

In yet another embodiment, the effects of the estimated pitch and rollof the dozer blade are reduced by mapping the gyro signals of the IMUcoupled to the dozer blade to an approximately level plane.

In accordance with another embodiment, a system for estimating yaw of animplement coupled to a machine, where the implement is rotatable tochange the yaw of the implement relative to the machine, includes afirst gyro sensor coupled to the implement, a second gyro sensor coupledto the machine. The machine is configured so that movement of at least aportion of the machine simultaneously changes at least one of a pitch ofthe first gyro sensor and a pitch of the second gyro sensor or a roll ofthe first gyro sensor and a roll of the second gyro sensor. The sensoralso includes a computer system communicatively coupled to the firstgyro sensor and to the second gyro sensor. The computer system isconfigured to receive gyro signals of the first gyro sensor and receivegyro signals of the second gyro sensor. At least some of the gyrosignals of the first gyro sensor include signals obtained while at leastthe portion of the machine is moving and the yaw of the implement issubstantially static, and at least some of the gyro signals of thesecond gyro sensor include signals obtained while at least the portionof the machine is moving. The computer system is also configured toestimate the yaw of the implement relative to the machine based on thegyro signals of the first gyro sensor and the gyro signals of the secondgyro sensor.

In an embodiment, the computer system is also configured to reduceeffects of an estimated pitch and roll of the implement on the gyrosignals of the first gyro sensor to provide first corrected gyrosignals, and reduce effects of an estimated pitch and roll of themachine on the gyro signals of the second gyro sensor to provide secondcorrected gyro signals. The gyro signals of the first gyro sensor usedto estimate the yaw of the implement relative to the machine may be thefirst corrected gyro signals, and the gyro signals of the second gyrosensor used to estimate the yaw of the implement relative to the machinemay be the second corrected gyro signals.

In another embodiment, the implement is a dozer blade and the machine isa dozer that includes a c-frame coupled to the dozer blade, and whereinthe second gyro sensor is coupled to the c-frame.

In another embodiment, measurement axes of the first gyro sensor andmeasurement axes of the second gyro sensor are approximately aligned.

In yet another embodiment, the first gyro sensor is coupled to theimplement at a known orientation relative to the second gyro sensorcoupled to the machine.

In accordance with yet another embodiment, a method for estimating yawof first gyro sensors relative to second gyro sensors, where the firstgyro sensors and the second gyro sensors are mounted on separate bodieshaving a semi-rigid coupling so that a change in pitch or roll of thesecond gyro sensors results in a corresponding change in pitch or rollof the first gyro sensors, and the first gyro sensors are rotatable tochange the yaw of the first gyro sensors relative to the second gyrosensors, includes moving the second gyro sensors to simultaneouslychange at least one of the pitch of the first gyro sensors and the pitchof the second gyro sensors or the roll of the first gyro sensors and theroll of the second gyro sensors. The method also includes receivingfirst gyro signals of the first gyro sensors and receiving second gyrosignals of the second gyro sensors. At least some of the first gyrosignals include signals obtained while the first gyro sensors and thesecond gyro sensors are moving and the yaw of the first gyro sensors issubstantially static, and at least some of the second gyro signalsinclude signals obtained while the first gyro sensors and the secondgyro sensors are moving. The method also includes estimating the yaw ofthe first gyro sensors relative to the second gyro sensors based on thefirst gyro signals and the second gyro signals.

In an embodiment, measurement axes of the first gyro sensors andmeasurement axes of the second gyro sensors are approximately aligned.

In another embodiment, the method also includes receiving an estimatedpitch and roll of the first gyro sensors, receiving an estimated pitchand roll of the second gyro sensors, reducing effects of the estimatedpitch and roll of the first gyro sensors on the first gyro signals toprovide first corrected gyro signals, and reducing effects of theestimated pitch and roll of the second gyro sensors on the second gyrosignals to provide second corrected gyro signals. The first gyro signalsused to estimate the yaw may be the first corrected gyro signals, andthe second gyro signals used to estimate the yaw may be the secondcorrected gyro signals.

In another embodiment, the pitch and roll of the first gyro sensors areestimated using a first IMU and the pitch and roll of the second gyrosensors are estimated using a second IMU.

In yet another embodiment, the first gyro sensors are mounted to animplement and the second gyro sensors are mounted on a machine.

Numerous benefits are achieved using embodiments described herein overconventional techniques. Some embodiments, for example, estimaterelative yaw of a dozer blade using gryo signals from inertialmeasurement units (IMUs). One IMU may be coupled to the dozer blade, andanother IMU may be coupled to a c-frame of a dozer. The IMUs providedependable measurements and are more robust than conventional systemsthat use position sensors on masts that are attached to the dozer blade.Also, using signals from gyros of the IMUs, rather than using signalsfrom accelerometers of the IMUs, simplifies the estimation processbecause centers of rotation of the dozer blade and dozer are notrequired. Also, compared to conventional systems that use accelerationsfrom the IMUs, the gyro signals are not as succeptible to disturbancesfrom centripetal or tangential accelerations. Depending on theembodiment, one or more of these features and/or benefits may exist.These and other benefits are described throughout the specification withreference to the appended drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a furtherunderstanding of the embodiments described herein, are incorporated inand constitute a part of this specification, illustrate embodiments ofthe invention, and together with the detailed description, serve toexplain the principles of the various embodiments. No attempt is made toshow structural details in more detail than may be necessary for afundamental understanding of the embodiments and various ways in whichthey may be practiced.

FIG. 1 is a simplified perspective view of a dozer illustrating rotationof a dozer blade in three dimensions.

FIG. 2 is a simplified side perspective view of a part of a dozerillustrating rotation of a dozer blade in three dimensions in accordancewith an embodiment.

FIG. 3 is a simplified top view of a part of a dozer illustratingchanges in yaw of a dozer blade.

FIGS. 4A-4B are simplified drawings showing measurement axes of a sensorcoupled to a dozer and measurement axes of a sensor coupled to a dozerblade in accordance with an embodiment.

FIG. 5 is a flowchart of an exemplary method for estimating yaw of adozer blade coupled to a dozer by a c-frame in accordance with anembodiment.

FIG. 6 is a flowchart of an exemplary method for estimating yaw of firstgyro sensors relative to second gyro sensors in accordance with anembodiment.

FIG. 7 illustrates a simplified computer system in accordance with anembodiment.

In the appended figures, similar components and/or features may have thesame numerical reference label. Further, various components of the sametype may be distinguished by following the reference label with a letteror by following the reference label with a dash followed by a secondnumerical reference label that distinguishes among the similarcomponents and/or features. If only the first numerical reference labelis used in the specification, the description is applicable to any oneof the similar components and/or features having the same firstnumerical reference label irrespective of the suffix.

DETAILED DESCRIPTION

Methods and systems are described for estimating yaw of an implementrelative to a machine. The yaw is estimated using gyro signals. The gyrosignals may be provided by gyro sensors such as IMUs that are coupled tothe implement and machine.

FIG. 1 is a simplified perspective view of a dozer illustrating rotationof a dozer blade in three dimensions. It should be appreciated that adozer (e.g., bulldozer) and dozer blade are used in this specificationas examples of separate bodies that have a semi-rigid coupling betweenthem. The coupling is semi-rigid in that the bodies can move relative toeach other but they can also be fixed at a given orientation. The dozerand dozer blade are also used as examples of bodies that may benefitfrom the embodiments described herein. The embodiments described hereinare not, however, limited to the dozer and dozer blade examples and maybe utilized with any rigid bodies having a semi-rigid coupling betweenthem. The rigid bodies may be referred to generally in some parts ofthis specification as machines (e.g., dozers) and implements (e.g.,dozer blades). Some examples of semi-rigid couplings used onconstruction or earthmoving equipment include c-frames, angle c-frames,push arms, L-shaped push arms, and the like.

FIG. 1 shows a dozer 102 having a dozer blade 104. The dozer blade 104is coupled to the dozer 102 by a semi-rigid coupling (not shown). Aheight 112 of the dozer blade 104 is adjustable using hydrauliccylinders 106 a, 106 b, a yaw 114 of the dozer blade 104 is adjustableusing hydraulic cylinder 108, and a tilt (or pitch) 116 of the dozerblade 104 is adjustable using hydraulic cylinder 110. The dozer 102 willtypically have additional hydraulic cylinders that are not visible inthis figure. For example, the dozer 102 may include additional hydrauliccylinders that are coupled to the far side of the dozer blade 104 inthis figure and correspond to hydraulic cylinders 108, 110.

The dozer 102 in this example is a track-type tractor (TTT) with anenclosed cab for an operator. The tracks, cab, and body are shown indotted lines so as to not distract from the dozer blade 104 and movementof the dozer blade 104 in three dimensions. They are also shown indotted lines because any number of machines may be used in place of thedozer 102 shown in this example.

The hydraulic cylinders shown in this example allow a position andorientation of the dozer blade 104 to be adjusted. Conventional dozershave myriad configurations, and the methods and systems described hereinmay be used with dozers having fewer hydraulic cylinders and/ordifferent configurations compared to this example. For example, somedozers provide a manually adjustable coupling about one or more axeswhile providing a hydraulically adjustable coupling about other axes.The embodiments described herein may be used with these differentconfigurations as well as many other machine and implement combinations.

FIG. 2 is a simplified side perspective view of a part of a dozerillustrating rotation of a dozer blade in three dimensions in accordancewith an embodiment. This example shows a front part of a dozer 202having a dozer blade 204. The dozer blade 204 is coupled to the dozer202 by a semi-rigid coupling 224. A height 212 of the dozer blade 204 isadjustable using hydraulic cylinder 206, a yaw 214 of the dozer blade204 is adjustable using hydraulic cylinder 208, and a tilt (or pitch)216 of the dozer blade 204 is adjustable using hydraulic cylinder 210.

This example also shows a c-frame 222. The c-frame attaches to the dozer202 and allows different implements, such as the dozer blade 204, to becoupled to the dozer 202 (or to the dozer 202 via the c-frame 222). Thedozer blade 204 in this example is coupled to c-frame 222 by thesemi-rigid coupling 224. Although the c-frame 222 may be attached to ordetached from the dozer 202 in most conventional configurations, thec-frame 222 may be considered to be part of the dozer 202 in someexamples described in this specification.

As can be appreciated with reference to FIG. 2, the height 212 of thedozer blade 204 can be adjusted by lifting or lowering the c-frame 222.The c-frame 222 moves up and down with the dozer blade 204. This isunlike the yaw 214 and tilt 216 of the dozer blade 204 that may beadjusted independent of the c-frame 222.

FIG. 2 also shows an IMU 218 coupled to the dozer blade 204 and an IMU220 coupled to the dozer 202 (or to the c-frame 222 in this example).While IMUs may include many different types of sensors, they typicallyinclude at least one of accelerometers or gyroscopes. Some IMUs alsoinclude magnetometers. The accelerometers are used to measure specificforce, the gyroscopes are used to measure angular velocity, and themagnetometers are used to measure the magnetic field. The accelerometersand gyroscopes may provide measurements in one, two, or threedimensions. An IMU providing accelerometer measurements in threedimensions and gyroscope measurements in three dimensions providesmeasurements of all six degrees of freedom (DOF) of a body inspace—three components of translation and three components of rotation.The IMUs generally provide measurements in Cartesian reference frames.

For purposes of this specification, and IMU is a sensor that includesgyroscopes or other sensors configured to measure angular velocity in atleast two dimensions. IMUs having gyroscopes configured to measure inthree dimensions as well as other sensors may also be used.

FIG. 3 is a simplified top view of a part of a dozer illustratingchanges in yaw of a dozer blade. This example shows a front part of adozer 302 having a dozer blade 304. The dozer blade 304 is coupled tothe dozer 302 by a semi-rigid coupling 324. A yaw 314 of the dozer blade304 is adjustable using hydraulic cylinders 308 a, 308 b. This exampledoes not show other hydraulic cylinders for adjusting height and tilt ofthe dozer blade 304.

The dozer 302 in this example also includes a c-frame 322. The dozerblade 304 is coupled to c-frame 322 by the semi-rigid coupling 324. Thedozer blades shown in dotted lines in this example illustrate the changein yaw 314 of the dozer blade 304 relative to the dozer 302 (or relativeto the c-frame 322). This example does not separately show the IMUscoupled to the dozer blade 304 or to the dozer 302.

FIGS. 4A-4B are simplified drawings showing measurement axes of a sensorcoupled to a dozer and measurement axes of a sensor coupled to a dozerblade in accordance with an embodiment. With reference to the previousfigures, the dozer and the dozer blade may each be rotatable about oneor more of the measurement axes. In general, rotation of the dozer aboutany of the axes (yaw, pitch, and roll) causes a corresponding rotationof the dozer blade about the same axes. The dozer blade, however, may beindependently rotatable about one of more of these axes depending on theparticular configuration. For example, the yaw of the dozer blade may bechanged as shown in FIG. 3, and the pitch of the dozer blade may bechanged by adjusting the tilt. In some configurations, the roll of thedozer blade may also be changed by lifting one side of the dozer bladerelative to the other.

The sensors shown in these figures may be IMUs or other sensorsconfigured to provide at least gyroscope measurements (e.g., angularvelocity). In FIG. 4A, the measurement axes of the sensor coupled to thedozer is approximately aligned with the measurement axes of the sensorcoupled to the dozer blade. The measurement axes of the sensors may beconsidered to be aligned if each axis is within a few degrees of thecorresponding axis at a particular height, tilt, and yaw of the dozerblade. The degree to which the measurement axes are out of alignment canbe used to determine the orientation of the dozer blade relative to thedozer.

In FIG. 4B, the measurement axes of the sensor coupled to the dozer isnot aligned with the measurement axes of the sensor coupled to the dozerblade. This scenario may exist when an orientation of the dozer blade isadjusted, for example, to perform some task such as moving dirt ordebris. The difference in alignment between the sensors can be used todetermine the orientation of the dozer blade relative to the dozer.

Alternatively, the scenario illustrated in FIG. 4B may represent amis-alignment between the measurement axes of the sensor coupled to thedozer and the measurement axes of the sensor coupled to the dozer blade.As long as the degree of mis-alignment between the sensors is known, itcan be taken into account in accordance with known techniques whendetermining the orientation of the dozer blade relative to the dozer.

FIG. 5 is a flowchart of an exemplary method for estimating yaw of adozer blade coupled to a dozer by a c-frame in accordance with anembodiment. The dozer blade is rotatable to change the yaw of the dozerblade relative to the c-frame (or relative to the dozer). The method mayinclude receiving an estimated pitch and roll of the dozer blade (502),and receiving an estimated pitch and roll of the c-frame (504). Someembodiments improve accuracy by taking into account effects of the pitchand roll of the dozer blade and the pitch and roll of the c-frame ongyro signals. This will be described more fully below with regard tosteps (512) and (514) of this method. The pitch and roll may bedetermined using IMUS coupled to the dozer blade and c-frame or by otherknown techniques such as using optical systems.

The method also includes moving the c-frame to simultaneously rotate theIMU coupled to the dozer blade and the IMU coupled to the c-frame (506).The yaw of the dozer blade is substantially static (or not changing)during the movement. Of course there may be some vibration or jitter inthe yaw anytime the dozer is moving. This can occur withoutintentionally changing the yaw of the dozer blade. In some embodiments,measurement axes of the IMU coupled to the dozer blade and measurementaxes of the IMU coupled to the c-frame are approximately aligned. Themeasurement axes may not be aligned during actually measurements, butthey may be aligned at some reference orientation of the dozer bladerelative to the c-frame. If the measurement axes are not aligned at somereference orientation, any difference in alignment at the referenceorientation can be taken into account in accordance with knowntechniques in determining the yaw of the dozer blade using the methodsand systems described herein.

As can be appreciated with reference to FIG. 2, the c-frame 222 may beraised or lowered using hydraulic cylinder 206 to simultaneously rotatethe IMU 218 that is coupled to the dozer blade 204 and the IMU 220 thatis coupled to the c-frame 222. Such a movement would change a pitch ofthe IMU 220 coupled to the c-frame 222 and a pitch and/or roll of theIMU coupled to the dozer blade 204 depending on the yaw of the dozerblade 204 relative to the c-frame 222. Referring to FIGS. 4A-4B, raisingor lowering the c-frame may only cause a change in pitch of the dozerblade if the measurement axes of both IMUs are aligned at the time ofthe movement as shown in FIG. 4A. Raising or lowering the c-frame maycause a change in both pitch and roll of the dozer blade if themeasurement axes of the IMUs are not aligned at the time of the movementas shown in FIG. 4B.

The method also includes receiving gyro signals of the IMU coupled tothe dozer blade, where at least some of the gyro signals of the IMUcoupled to the dozer blade include signals obtained while the c-frame ismoving (508). The gyro signals capture the change in pitch and/or rollof the dozer blade caused by the movement in step (506).

The method also includes receiving gyro signals of the IMU coupled tothe c-frame, where at least some of the gyro signals of the IMU coupledto the c-frame include signals obtained while the c-frame is moving(510). The gyro signals capture the change in the pitch of the c-framecaused by the movement in step (506).

For embodiments that include receiving an estimated pitch and roll ofthe dozer blade and c-frame in steps (502) and (504) above, the methodmay also include reducing effects of the estimated pitch and roll of thedozer blade on the gyro signals of the IMU coupled to the dozer blade toprovide corrected dozer blade gyro signals (512), and reducing effectsof the estimated pitch and roll of the c-frame on the gyro signals ofthe IMU coupled to the c-frame to provide corrected c-frame gyro signals(514). In an embodiment, the effects of the estimated pitch and roll maybe reduced by mapping the gyro signals of the IMU coupled to the dozerblade and the gyro signals of the IMU coupled to the c-frame to anapproximately level plane. The mapping is determined based on theestimated pitch and roll of the dozer blade and c-frame. Mapping thegyro signals to a rotational level plane can allow a more accurateestimation of the relative yaw of the dozer blade.

The method also includes estimating the yaw of the dozer blade relativeto the c-frame based on the corrected dozer blade gyro signals and thecorrected c-frame gyro signals (516). The movement of the c-frame instep 506 changes a rotation (or angular velocity) of the pitch of thec-frame and the pitch and/or roll of the dozer blade. Any differencebetween the gyro signals during the movement is due to a difference inthe yaw of the dozer blade relative to the c-frame (or difference in theyaw of the IMU coupled to the dozer blade compared to a yaw of the IMUcoupled to the c-frame).

The yaw may be determined from the gyro signals using any of a number ofdifferent analytical techniques. Merely as an example, in someembodiments the relative yaw may be determined by calculating:

Yaw=D−DB  Equation (1)

where D is the inverse tangent of roll rate/pitch rate for the dozer,and DB is the inverse tangent of the roll rate/pitch rate for the dozerblade as shown by the following equations:

D=a tan(D _(RR) /D _(PR))  Equation (2)

DB=a tan(DB _(RR) /DB _(PR))  Equation (3)

where D_(RR) is the roll rate of the dozer, D_(PR) is the pitch rate ofthe dozer, DB_(RR) is the roll rate of the dozer blade, and DB_(PR) isthe pitch rate of the dozer blade. Since the yaw is not changing duringthe movement, and assuming the measurement axes of the IMUs areapproximately aligned at some reference orientation, the gyro signalswill be different in pitch and roll only.

In some embodiments, the gyro signals from the IMUs provide angularvelocity in Cartesian reference frames, and the relative yaw isestimated using Euler angles.

The method illustrated in the flowchart of FIG. 5 provides an estimationof the yaw while the dozer blade is static (the yaw is not changing). Inan embodiment, a change in the yaw of the dozer blade may also betracked. The yaw of the dozer blade relative to the c-frame may beestimated using the method illustrated in FIG. 5. Subsequent changes inyaw may be tracked by receiving gyro signals of the IMU coupled to thedozer blade and gyro signals of the IMU coupled to the c-frame while thedozer blade and/or c-frame are rotating. The yaw of the dozer bladerelative to the c-frame is estimated based on the gyro signals receivedwhile the dozer blade is rotating. The gyro signals provide angularvelocities of the dozer blade and c-frame during rotation, and the yawmay be tracked by integrating the angular velocities in accordance withknown techniques.

As explained previously, the dozer and dozer blade are used in thisspecification as examples of separate bodies that have a semi-rigidcoupling between them. The embodiments described herein are not,however, limited to the dozer and dozer blade examples and may beutilized with any rigid bodies having a semi-rigid coupling betweenthem. As another example, the embodiments described herein may be usedwith excavators (or backhoes) to determine the yaw of a bucket relativeto a stick (or dipper) or relative to a body of the excavator.

FIG. 6 is a flowchart of an exemplary method for estimating yaw of firstgyro sensors relative to second gyro sensors in accordance with anembodiment. The first gyro sensors and the second gyro sensors aremounted on separate bodies having a semi-rigid coupling between them sothat a change in pitch or roll of the second gyro sensors will result ina corresponding change in pitch or roll of the first gyro sensors, andthe first gyro sensors are rotatable to change the yaw of the first gyrosensors relative to the second gyro sensors. In some embodiments, thefirst gyro sensors may be coupled to an implement and the second gyrosensors may be coupled to a machine.

The method includes moving the second gyro sensors to simultaneouslychange at least one of the pitch of the first gyro sensors and the pitchof the second gyro sensors or the roll of the first gyro sensors and theroll of the second gyro sensors (602). Measurement axes of the firstgyro sensors and the second gyro sensors may be approximately aligned ata reference orientation.

The method also includes receiving first gyro signals of the first gyrosensors, where at least some of the first gyro signals include signalsobtained while the first gyro sensors and the second gyro sensors aremoving (604). The yaw of the first gyro sensors is static (or notchanging) during the movement.

The method also includes receiving second gyro signals of the secondgyro sensors, where at least some of the second gyro signals includesignals obtained while the first gyro sensors and the second gyrosensors are moving (606).

The method also includes estimating the yaw of the first gyro sensorsrelative to the second gyro sensors based on the first gyro signals andthe second gyro signals (608).

In an embodiment, the method also includes receiving an estimated pitchand roll of the first gyro sensors, receiving an estimated pitch androll of the second gyro sensors, reducing effects of the estimated pitchand roll of the first gyro sensors on the first gyro signals to providefirst corrected gyro signals, and reducing effects of the estimatedpitch and roll of the second gyro sensors on the second gyro signals toprovide second corrected gyro signals. The first gyro signals used toestimate the yaw may be the first corrected gyro signals, and the secondgyro signals used to estimate the yaw may be the second corrected gyrosignals. In some embodiments, the pitch and roll of the first gyrosensors are estimated using a first IMU, and the pitch and roll of thesecond gyro sensors are estimated using a second IMU. In otherembodiments, at least one of the pitch and roll of the first gyrosensors or the pitch and roll of the second gyro sensors are estimatedwithout using signals from an IMU.

FIG. 7 illustrates a simplified computer system 700, according to someembodiments of the present disclosure. Computer system 700 asillustrated in FIG. 7 may be incorporated into dozers 102, 202, 302, orother machines. FIG. 7 provides a schematic illustration of oneembodiment of computer system 700 that can perform some or all of thesteps of the methods provided by various embodiments. It should be notedthat FIG. 7 is meant only to provide a generalized illustration ofvarious components, any or all of which may be utilized as appropriate.FIG. 7, therefore, broadly illustrates how individual system elementsmay be implemented in a relatively separated or more integrated manner.

Computer system 700 is shown comprising hardware elements that can beelectrically coupled via a bus 705, or may otherwise be incommunication, as appropriate. The hardware elements may include one ormore processors 710, including without limitation one or moregeneral-purpose processors and/or one or more special-purpose processorssuch as digital signal processing chips, graphics accelerationprocessors, and/or the like; one or more input devices 715, which caninclude, without limitation a mouse, a keyboard, a camera, and/or thelike; and one or more output devices 720, which can include, withoutlimitation a display device, a printer, and/or the like.

Computer system 700 may further include and/or be in communication withone or more non-transitory storage devices 725, which can comprise,without limitation, local and/or network accessible storage, and/or caninclude, without limitation, a disk drive, a drive array, an opticalstorage device, a solid-state storage device, such as a random accessmemory (“RAM”), and/or a read-only memory (“ROM”), which can beprogrammable, flash-updateable, and/or the like. Such storage devicesmay be configured to implement any appropriate data stores, includingwithout limitation, various file systems, database structures, and/orthe like.

Computer system 700 might also include a communications subsystem 730,which can include, without limitation a modem, a network card (wirelessor wired), an infrared communication device, a wireless communicationdevice, and/or a chipset such as a Bluetooth™ device, an 802.11 device,a WiFi device, a WiMax device, cellular communication facilities, etc.,and/or the like. The communications subsystem 730 may include one ormore input and/or output communication interfaces to permit data to beexchanged with a network such as the network described below to name oneexample, to other computer systems, and/or any other devices describedherein (e.g., IMUs). Depending on the desired functionality and/or otherimplementation concerns, a portable electronic device or similar devicemay communicate image and/or other information via the communicationssubsystem 730. In other embodiments, a portable electronic device, e.g.the first electronic device, may be incorporated into computer system700, e.g., an electronic device as an input device 715. In someembodiments, computer system 700 will further comprise a working memory735, which can include a RAM or ROM device, as described above.

Computer system 700 also can include software elements, shown as beingcurrently located within the working memory 735, including an operatingsystem 740, device drivers, executable libraries, and/or other code,such as one or more application programs 745, which may comprisecomputer programs provided by various embodiments, and/or may bedesigned to implement methods, and/or configure systems, provided byother embodiments, as described herein. Merely by way of example, one ormore procedures described with respect to the methods discussed abovecan be implemented as code and/or instructions executable by a computerand/or a processor within a computer; in an aspect, then, such codeand/or instructions can be used to configure and/or adapt a generalpurpose computer or other device to perform one or more operations inaccordance with the described methods.

A set of these instructions and/or code may be stored on anon-transitory computer-readable storage medium, such as the storagedevice(s) 725 described above. In some cases, the storage medium mightbe incorporated within a computer system, such as computer system 700.In other embodiments, the storage medium might be separate from acomputer system e.g., a removable medium, such as a compact disc, and/orprovided in an installation package, such that the storage medium can beused to program, configure, and/or adapt a general purpose computer withthe instructions/code stored thereon. These instructions might take theform of executable code, which is executable by computer system 700and/or might take the form of source and/or installable code, which,upon compilation and/or installation on computer system 700 e.g., usingany of a variety of generally available compilers, installationprograms, compression/decompression utilities, etc., then takes the formof executable code.

It will be apparent to those skilled in the art that substantialvariations may be made in accordance with specific requirements. Forexample, customized hardware might also be used, and/or particularelements might be implemented in hardware or software including portablesoftware, such as applets, etc., or both. Further, connection to othercomputing devices such as network input/output devices may be employed.

As mentioned above, in one aspect, some embodiments may employ acomputer system such as computer system 700 to perform methods inaccordance with various embodiments of the technology. According to aset of embodiments, some or all of the procedures of such methods areperformed by computer system 700 in response to processor 710 executingone or more sequences of one or more instructions, which might beincorporated into the operating system 740 and/or other code, such as anapplication program 745, contained in the working memory 735. Suchinstructions may be read into the working memory 735 from anothercomputer-readable medium, such as one or more of the storage device(s)725. Merely by way of example, execution of the sequences ofinstructions contained in the working memory 735 might cause theprocessor(s) 710 to perform one or more procedures of the methodsdescribed herein. Additionally or alternatively, portions of the methodsdescribed herein may be executed through specialized hardware.

The terms “machine-readable medium” and “computer-readable medium,” asused herein, refer to any medium that participates in providing datathat causes a machine to operate in a specific fashion. In an embodimentimplemented using computer system 700, various computer-readable mediamight be involved in providing instructions/code to processor(s) 710 forexecution and/or might be used to store and/or carry suchinstructions/code. In many implementations, a computer-readable mediumis a physical and/or tangible storage medium. Such a medium may take theform of a non-volatile media or volatile media. Non-volatile mediainclude, for example, optical and/or magnetic disks, such as the storagedevice(s) 725. Volatile media include, without limitation, dynamicmemory, such as the working memory 735.

Common forms of physical and/or tangible computer-readable mediainclude, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, or any other magnetic medium, a CD-ROM, any other opticalmedium, punchcards, papertape, any other physical medium with patternsof holes, a RAM, a PROM, EPROM, a FLASH-EPROM, any other memory chip orcartridge, or any other medium from which a computer can readinstructions and/or code.

Various forms of computer-readable media may be involved in carrying oneor more sequences of one or more instructions to the processor(s) 710for execution. Merely by way of example, the instructions may initiallybe carried on a magnetic disk and/or optical disc of a remote computer.A remote computer might load the instructions into its dynamic memoryand send the instructions as signals over a transmission medium to bereceived and/or executed by computer system 700.

The communications subsystem 730 and/or components thereof generallywill receive signals, and the bus 705 then might carry the signalsand/or the data, instructions, etc. carried by the signals to theworking memory 735, from which the processor(s) 710 retrieves andexecutes the instructions. The instructions received by the workingmemory 735 may optionally be stored on a non-transitory storage device725 either before or after execution by the processor(s) 710.

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and/or various stages may be added, omitted, and/or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims.

Specific details are given in the description to provide a thoroughunderstanding of exemplary configurations including implementations.However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations will provide those skilled in the art with an enablingdescription for implementing described techniques. Various changes maybe made in the function and arrangement of elements without departingfrom the spirit or scope of the disclosure.

Also, configurations may be described as a process which is depicted asa schematic flowchart or block diagram. Although each may describe theoperations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be rearranged. A process may have additional steps notincluded in the figure. Furthermore, examples of the methods may beimplemented by hardware, software, firmware, middleware, microcode,hardware description languages, or any combination thereof. Whenimplemented in software, firmware, middleware, or microcode, the programcode or code segments to perform the necessary tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the technology.Also, a number of steps may be undertaken before, during, or after theabove elements are considered. Accordingly, the above description doesnot bind the scope of the claims.

As used herein and in the appended claims, the singular forms “a”, “an”,and “the” include plural references unless the context clearly dictatesotherwise. Thus, for example, reference to “a user” includes a pluralityof such users, and reference to “the processor” includes reference toone or more processors and equivalents thereof known to those skilled inthe art, and so forth.

Also, the words “comprise”, “comprising”, “contains”, “containing”,“include”, “including”, and “includes”, when used in this specificationand in the following claims, are intended to specify the presence ofstated features, integers, components, or steps, but they do notpreclude the presence or addition of one or more other features,integers, components, steps, acts, or groups.

What is claimed is:
 1. A method of estimating a yaw of an implementcoupled to a machine, the method comprising: receiving gyro signals of afirst gyro sensor coupled to the implement, wherein the implement isrotatable to change the yaw of the implement relative to the machine,wherein at least some of the gyro signals of the first gyro sensorinclude signals obtained while at least a portion of the machine ismoving and the yaw of the implement is substantially static; receivinggyro signals of a second gyro sensor coupled to the machine, wherein themachine is configured so that movement of at least the portion of themachine simultaneously changes at least one of a pitch of the first gyrosensor and a pitch of the second gyro sensor or a roll of the first gyrosensor and a roll of the second gyro sensor, wherein at least some ofthe gyro signals of the second gyro sensor include signals obtainedwhile at least the portion of the machine is moving; and estimating theyaw of the implement relative to the machine based on the gyro signalsof the first gyro sensor and the gyro signals of the second gyro sensor.2. The method of claim 1, further comprising: estimating a pitch androll of the implement based on the gyro signals of the first gyrosensor; and estimating a pitch and roll of the machine based on the gyrosignals of the second gyro sensor.
 3. The method of claim 1, furthercomprising: reducing effects of an estimated pitch and roll of theimplement on the gyro signals of the first gyro sensor to provide firstcorrected gyro signals; and reducing effects of an estimated pitch androll of the machine on the gyro signals of the second gyro sensor toprovide second corrected gyro signals, wherein the gyro signals of thefirst gyro sensor used to estimate the yaw of the implement relative tothe machine are the first corrected gyro signals, and the gyro signalsof the second gyro sensor used to estimate the yaw of the implementrelative to the machine are the second corrected gyro signals.
 4. Themethod of claim 1, wherein the implement is a dozer blade and themachine is a dozer that includes a c-frame coupled to the dozer blade,and wherein the second gyro sensor is coupled to the c-frame.
 5. Themethod of claim 1, wherein measurement axes of the first gyro sensor andmeasurement axes of the second gyro sensor are approximately aligned. 6.The method of claim 1, wherein the first gyro sensor is coupled to theimplement at a known orientation relative to the second gyro sensorcoupled to the machine.
 7. A system for estimating a yaw of an implementcoupled to a machine, wherein the implement is rotatable to change theyaw of the implement relative to the machine, the system comprising: afirst gyro sensor coupled to the implement; a second gyro sensor coupledto the machine, wherein the machine is configured so that movement of atleast a portion of the machine simultaneously changes at least one of apitch of the first gyro sensor and a pitch of the second gyro sensor ora roll of the first gyro sensor and a roll of the second gyro sensor;and a computer system communicatively coupled to the first gyro sensorand to the second gyro sensor, the computer system configured to:receive gyro signals of the first gyro sensor, wherein at least some ofthe gyro signals of the first gyro sensor include signals obtained whileat least the portion of the machine is moving and the yaw of theimplement is substantially static; receive gyro signals of the secondgyro sensor, wherein at least some of the gyro signals of the secondgyro sensor include signals obtained while at least the portion of themachine is moving; and estimate the yaw of the implement relative to themachine based on the gyro signals of the first gyro sensor and the gyrosignals of the second gyro sensor.
 8. The system of claim 7, wherein thecomputer system is further configured to: estimate a pitch and roll ofthe implement based on the gyro signals of the first gyro sensor; andestimate a pitch and roll of the machine based on the gyro signals ofthe second gyro sensor.
 9. The system of claim 7 wherein the computersystem is further configured to: reduce effects of an estimated pitchand roll of the implement on the gyro signals of the first gyro sensorto provide first corrected gyro signals; and reduce effects of anestimated pitch and roll of the machine on the gyro signals of thesecond gyro sensor to provide second corrected gyro signals, wherein thegyro signals of the first gyro sensor used to estimate the yaw of theimplement relative to the machine are the first corrected gyro signals,and the gyro signals of the second gyro sensor used to estimate the yawof the implement relative to the machine are the second corrected gyrosignals.
 10. The system of claim 7, wherein the implement is a dozerblade and the machine is a dozer that includes a c-frame coupled to thedozer blade, and wherein the second gyro sensor is coupled to thec-frame.
 11. The system of claim 7, wherein measurement axes of thefirst gyro sensor and measurement axes of the second gyro sensor areapproximately aligned.
 12. The system of claim 7, wherein the first gyrosensor is coupled to the implement at a known orientation relative tothe second gyro sensor coupled to the machine.
 13. A non-transitorycomputer-readable medium comprising instructions that, when executed byone or more processors, cause the one or more processors to performoperations for estimating a yaw of an implement coupled to a machine,the operations comprising: receiving gyro signals of a first gyro sensorcoupled to the implement, wherein the implement is rotatable to changethe yaw of the implement relative to the machine, wherein at least someof the gyro signals of the first gyro sensor include signals obtainedwhile at least a portion of the machine is moving and the yaw of theimplement is substantially static; receiving gyro signals of a secondgyro sensor coupled to the machine, wherein the machine is configured sothat movement of at least the portion of the machine simultaneouslychanges at least one of a pitch of the first gyro sensor and a pitch ofthe second gyro sensor or a roll of the first gyro sensor and a roll ofthe second gyro sensor; wherein at least some of the gyro signals of thesecond gyro sensor include signals obtained while at least the portionof the machine is moving; and estimating the yaw of the implementrelative to the machine based on the gyro signals of the first gyrosensor and the gyro signals of the second gyro sensor.
 14. Thenon-transitory computer-readable medium of claim 13, wherein theoperations further comprise: estimating a pitch and roll of theimplement based on the gyro signals of the first gyro sensor; andestimating a pitch and roll of the machine based on the gyro signals ofthe second gyro sensor.
 15. The non-transitory computer-readable mediumof claim 13, wherein the operations further comprise: reducing effectsof an estimated pitch and roll of the implement on the gyro signals ofthe first gyro sensor to provide first corrected gyro signals; andreducing effects of an estimated pitch and roll of the machine on thegyro signals of the second gyro sensor to provide second corrected gyrosignals, wherein the gyro signals of the first gyro sensor used toestimate the yaw of the implement relative to the machine are the firstcorrected gyro signals, and the gyro signals of the second gyro sensorused to estimate the yaw of the implement relative to the machine arethe second corrected gyro signals.
 16. The non-transitorycomputer-readable medium of claim 13, wherein the implement is a dozerblade and the machine is a dozer that includes a c-frame coupled to thedozer blade, and wherein the second gyro sensor is coupled to thec-frame.
 17. The non-transitory computer-readable medium of claim 13,wherein measurement axes of the first gyro sensor and measurement axesof the second gyro sensor are approximately aligned.
 18. Thenon-transitory computer-readable medium of claim 13, wherein the firstgyro sensor is coupled to the implement at a known orientation relativeto the second gyro sensor coupled to the machine.